1
Суть информатики: алгоритмы, программирование и сила абстракции
AI028Lesson 1
00:00

Суть информатики — это не изучение компьютеров как таковых, а исследование«решения задач» (Problem Solving)науки. Это искусство преобразования сложной и хаотичной реальности в точные логические шаги.

n (ввод)sqrt()√n (вывод)Рис. 1-1 Процедурная абстракция: взгляд «черного ящика»

Три ключевых основы

  • алгоритм (Algorithm)— душа решения задач. Это процесс с конечным числом шагов, определяющий, является ли проблемавычислимой (Computable).
  • программирование (Programming)— процесс перевода алгоритма на язык, понятный компьютеру (например, Python). Он служит мостом между логической абстракцией и физической реализацией.
  • процедурная абстракция (Procedural Abstraction)— окончательное оружие для управления сложностью. За счет инкапсуляции деталей реализации внутри «черного ящика» программист может сосредоточиться только на том, что делать, а не на том, как это делать.
Пользователь (User)Интерфейс (Interface)РеализацияОперацияРис. 1-2 Уровни абстракции
Философия «черного ящика» для программистов
Когда вы вызываете math.sqrt(16) вам не нужно знать, использует ли внутренняя реализация метод Ньютона или бинарный поиск. Эта способность «игнорировать ненужные детали» — основа построения масштабных программных систем. Именно это и заложено в идеяхабстрактных типов данных (ADT) — идея, согласно которой логическое представление данных полностью отделено от их физической реализации.